home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-03-12 | 46.7 KB | 1,103 lines |
- GIFCHECK 1.11 DOCUMENTATION
- ===========================
- James W. Birdsall
- 03/19/93
-
-
- 0. CONTENTS
- -----------
- 0. CONTENTS
- 1. INTRODUCTION
- 1.1 Quick Reference
- 1.2 Copyright, License, and Warranty Disclaimer
- 2. USAGE
- 2.1 Targets
- 2.1.1 Wildcards
- 2.2 Options
- 2.2.1 Output redirection options
- 2.2.2 Output format options
- 2.2.3 Processing options
- 2.2.4 Diagnostic options
- 2.2.5 -# Version
- 2.2.6 -? Help
- 3. OUTPUT
- 3.1 File Header
- 3.2 Image
- 3.3 Extension Blocks
- 3.3.1 Generic extensions
- 3.3.2 Graphic Control Extension
- 3.3.3 Plain Text Extension
- 3.3.4 Comment Extension
- 3.3.5 Application Extension
- 3.4 Terminator
- 4. DIAGNOSTIC MESSAGES
- 4.1 Anomalies
- 4.2 Violations
- 4.3 Fascinatings
- 4.4 Nitpicks
- 4.5 Miscellaneous
- 5. THE END
-
-
- 1. INTRODUCTION
- ---------------
-
- GIFCHECK is a program of the Chiaro suite. It performs a complete
- analysis and verification of GIF-format images and displays the
- information it finds. It can also be used in batch files to determine
- whether GIF files need to be passed through the GIFSTRIP program to
- remove excess characters.
-
- 1.1 Quick Reference
- -------------------
-
- This is a quick summary of the usage and options of GIFCHECK.
- Invoking GIFCHECK with the option "-?" will produce a similar summary.
- Complete explanations may be found in section 2.
-
- usage: gifcheck [options] target [target ...]
- target filename, filename with wildcards, or path. Wildcards
- are *, ?, and ranges or groups specified in []. A
- range or group may be complemented with ^ or !.
-
- -b BATCH: suppresses all console output. Should be first
- on the line. Returns ERRORLEVEL 0 if OK, 1 if a
- non-GIF file was found, 2 if unexpected EOF in a GIF
- file, 3 on other error, 4 if the GIF is OK but needs
- to be stripped, and 5 if the. GIF is OK but needs to
- be stripped with the -m option.
- -r Sends error messages to stderr instead of stdout.
- -p Turn off paging of output (paging always off when
- stdout is redirected or -b BATCH is in effect).
-
- -v VERBOSE: turns on verbose output.
- -h HEX DUMP: switches from ASCII to HEX dump for certain
- blocks.
- -c COLOR DUMP: dumps raw RGB values from all colormaps.
-
- -l Disables checking for leading junk characters (from a
- Mac, for example).
- -f FAST: disables decompression. Only block formatting
- is checked.
-
- -dn SET DISPLAY WARNING LEVEL:
- 0 displays anomalies and violations
- 1 (default) displays anomalies, violations, and
- fascinatings
- 2 displays anomalies, violations, fascinatings,
- and nitpicks
- -en SET EXIT WARNING LEVEL:
- 0 exits on anomalies only
- 1 (default) exits on anomalies and violations
- 2 exits on anomalies, violations, and fascinatings
-
- -# VERSION: Prints version information on internal
- modules, then exits.
-
- GIFCHECK automatically reads a list of targets from stdin if stdin is
- redirected. Targets must be separated by newlines, and are
- wildcard-expanded in the same way as command-line targets. Note that
- command-line targets are ignored if stdin is redirected; if stdin is not
- redirected, there must be at least one target on the command line.
-
- Options are case-insensitive, and may not be combined.
-
- 1.2 Copyright, License, and Warranty Disclaimer
- -----------------------------------------------
-
- The Graphics Interchange Format(c) is the Copyright property of
- CompuServe Incorporated. GIF(sm) is a Service Mark property of
- CompuServe Incorporated.
-
- GIFCHECK is not in the public domain. All the files are copyright
- 1993 by James W. Birdsall, all rights reserved.
-
- The following license applies to the entire Chiaro suite, which is
- made up of all the files listed in the file MANIFEST. Permission is
- granted to do the following:
-
- You may freely redistribute this archive, so long as it contains
- all the files listed in the file MANIFEST, intact and
- unmodified.
-
- You may use the programs contained in this archive for a period
- of 30 days for evaluation purposes.
-
- Payment of the $10 shareware fee (which covers all the programs in
- the Chiaro suite) licenses you to use the Chiaro suite beyond the
- evaluation period. This license-to-use specifically includes use by
- bulletin board systems and other commercial or private information
- services.
-
- Registered users will also receive update notices and bug reports,
- and are entitled to use future versions without further payment.
-
- The contents of the distribution archive, and all other related
- files, information, and services are provided "as is" and without
- warranty. To the extent permitted by applicable law, the author
- disclaims all warranties, express or implied, including but not limited
- to, any implied warranty of merchantability or fitness for a particular
- purpose. While effort has been made to ensure that the files,
- information, and services are accurate and correct, the author shall not
- be liable for damages arising out of the use of or inability to use this
- product, including but not limited to, loss of profit, data, or use of
- this software, or special, incidental, or consequential damages or other
- similar claims, even if the author has been specifically advised of the
- possibility of such damages. Some states do not allow the exclusion of
- incidental or consequential damages, so the foregoing limitation may not
- apply to you.
-
- Information on contacting the author is provided at the end of this
- file.
-
-
- 2. USAGE
- --------
-
- GIFCHECK may be called with zero or more options interspersed with
- zero or more targets. All options are scanned before any file searching
- is done, so order of options and targets is unimportant. If the standard
- input is not redirected, at least one target must be specified on the
- command line. If the standard input is redirected (is not the keyboard),
- GIFCHECK will detect this and will attempt to read a list of targets,
- separated with newlines, from the standard input. Targets on the command
- line will be ignored, but options on the command line will be used. This
- feature is for use with the "front end" option of CHILS.
-
- GIFCHECK requires 150,000 bytes of free conventional memory to run.
-
- 2.1 Targets
- -----------
-
- A target can consist of a filename (optionally with path), a path, or
- a filename with wildcards (again, optionally with path). In the case of
- a filename, that file is checked. In the case of a path, all files in
- the specified directory are checked. In the case of a filename with
- wildcards, all files in the appropriate directory (the current directory
- if no path is given) matching the wildcards are checked.
-
- If a file that is checked is a GIF format file, it is processed. If
- it is not, it is not processed.
-
- 2.1.1 Wildcards
- ---------------
-
- Wildcards are much closer to the UNIX standard than MS-DOS. The
- characters * and ? retain their ordinary meanings but matching is much
- more intelligent. For example, *A.GIF will match LENNA.GIF but not
- CHESS.GIF, whereas under ordinary MS-DOS wildcards, *A.GIF would match
- both. Further, groups and ranges of characters may be specified in
- brackets []. For example, PIC0[1-5].GIF will match any filename starting
- with "PIC0", then containing any one of the characters "1", "2", "3",
- "4", or "5", and ending with ".GIF". PIC0[1-5A-F].GIF will match the
- names described before or those with the characters "A", "B", "C", "D",
- "E", or "F" between "PIC0" and ".GIF".
-
- A range or group may be complemented with the characters "^" or "!".
- For example, PIC0[^1-5].GIF will match any name with one character
- between "PIC0" and ".GIF" unless that character is "1", "2", "3", "4",
- or "5".
-
- Note that wildcards are only allowed in the filename portion, not the
- path portion. "\PICTURES\NEWGIF*\*.GIF" is illegal and an error message
- will be issued.
-
- 2.2 Options
- -----------
-
- GIFCHECK has a variety of options to modify its function, including
- options to control the formatting of output, the level of processing
- done, etc. These options are described below. Options are
- case-insensitive ("-c" is the same as "-C") and may not be combined
- ("-cv" will not have the desired effect, since only the "-c" will be
- recognized; "-c -v" should be used instead).
-
- 2.2.1 Output redirection options
- --------------------------------
-
- The following options specify where various types of output should be
- sent.
-
- 2.2.1.1 -b Batch
- ----------------
-
- The -b option causes GIFCHECK to operate in batch mode. All console
- output is suppressed. This option should be first on the command line or
- other options may generate console output before this option is found.
- When in batch mode, GIFCHECK adjusts the ERRORLEVEL return to reflect
- the results of processing. ERRORLEVEL is set to:
-
- 0 if the file was a valid GIF format file and did not need
- stripping
- 1 if the file was not a GIF format file
- 2 if GIFCHECK encountered an unexpected end-of-file
- 3 if there was any other error
- 4 if the file is a valid GIF format file but needs to be
- stripped (excess characters on end of file)
- 5 if the file is a valid GIF format file but needs to be
- stripped with the -m option (excess characters at the
- beginning of the file and possibly the end as well)
-
- NOTE: the ERRORLEVEL reflects only the results of the last file
- processed. Therefore, in batch mode only one file should be specified on
- the command line.
-
- NOTE: this option automatically invokes the -p no-paging option.
-
- 2.2.1.2 -r Error Redirect
- -------------------------
-
- Normally error messages are sent to the standard output stream, along
- with all other output from GIFCHECK. However, error messages can be
- redirected to the standard error output stream with the -r option. This
- means that error messages will appear on the screen even if output is
- redirected to a file with the DOS ">" or "|" output redirection
- operators. Note that the error messages will not appear in the file,
- however.
-
- 2.2.1.3 -p Disable paging
- -------------------------
-
- Normally, output is paged (after a screenful of output has been
- printed, GIFCHECK pauses with the message "---more---" and waits for a
- keystroke before continuing). Also, an ASCII clockface is displayed when
- decompressing an image to indicate that GIFCHECK is still working. The
- -p option turns off both of these features. Note that the -p option is
- automatically invoked if the standard output is redirected, or if the -b
- option is in effect.
-
- 2.2.2 Output format options
- ---------------------------
-
- 2.2.2.1 -v Verbose
- ------------------
-
- This option causes output to be in a more verbose format. No
- additional data is displayed.
-
- 2.2.2.2 -h Hex dump
- -------------------
-
- This option causes output to be in a hex dump format instead of plain
- text format for Plain Text Extensions and Comment Extensions, extension
- blocks defined by the GIF89a standard.
-
- 2.2.2.3 -c Color dump
- ---------------------
-
- This option causes GIFCHECK to dump all colormaps found in an image,
- local and global, as decimal RGB triplets of the format RRR/GGG/BBB.
-
-
- 2.2.3 Processing options
- ------------------------
-
- The following options determine what processing is performed on a
- file.
-
- 2.2.3.1 -l No leading junk check
- --------------------------------
-
- The -l option disables checking for excess characters at the
- beginning of the file. This means that if a file does not begin with the
- GIF signature, the file is assumed not to be a GIF file. Excess
- characters are typically found at the beginnings of files which have
- been transferred incorrectly from a Macintosh computer.
-
- 2.2.3.2 -f Fast
- ---------------
-
- This option disables image decompression, in which the compressed
- image data is checked to ensure that the data has not been corrupted.
- This can be a slow process, especially for large files. However, an
- image cannot be completely verified if it is not decompressed, and some
- information can only be obtained by decompressing the image data.
-
-
- 2.2.4 Diagnostic options
- ------------------------
-
- GIFCHECK produces a wide variety of diagnostics. They are described
- in more detail in section 4, but they all belong in one of four
- categories:
-
- ANOMALY a format error so major that GIFCHECK cannot
- decide how to continue processing the file
- VIOLATION a major violation of the GIF specification,
- which will probably cause most viewers to fail
- or display incorrectly
- FASCINATING (from Mr. Spock) a violation of the GIF
- specification, but most viewers should cope
- with the image OK
- NITPICK technically, a violation of the GIF
- specification, but so minor as to be
- meaningless -- a large fraction of all images
- contain NITPICK-type violations
-
- The diagnostic options determine which levels of diagnostics are
- displayed by GIFCHECK, and which levels cause GIFCHECK to skip
- immediately to the next image (or exit, if on the last image). Note that
- anomalies and violations are always displayed, anomalies always cause
- GIFCHECK to skip to the next image, and NITPICKS never cause GIFCHECK to
- skip.
-
- 2.2.3.1 -d Set display warning level
- ------------------------------------
-
- The -d option takes an argument 0, 1, or 2, which must be immediately
- next to the "-d" (no space).
-
- -d0 display anomalies and violations
- -d1 (default) display anomalies, violations, and fascinatings
- -d2 display all
-
- 2.2.3.2 -e Set exit warning level
- ---------------------------------
-
- The -e option takes an argument 0, 1, or 2, which must be immediately
- next to the "-e" (no space).
-
- -e0 skip on anomalies only
- -e1 (default) skip on anomalies and violations
- -e2 skip on anomalies, violations, and fascinatings
-
- 2.2.4 -# Version
- ----------------
-
- This option is intended more for bug reporting purposes than anything
- else. It causes GIFCHECK to print the version numbers and compilation
- dates of its component modules. No files are processed, and all other
- options are ignored.
-
- 2.2.5 -? Help
- -------------
-
- This option, or any syntax error on the command line, causes a usage
- message to be displayed. No files are processed, and all other options
- are ignored.
-
-
- 3. OUTPUT
- ---------
-
- GIFCHECK recognizes eight different types of blocks within a GIF
- file: file headers, images, file terminators, and five types of
- extension block: generic extensions, Graphic Control Extensions, Plain
- Text Extensions, Comment Extensions, and Application Extensions (the
- last four are found only in GIF89a-format files).
-
- Data from each type of block is output in a different format, which
- may change according to the settings of the output format options. The
- various displays are explained below. Examples are surrounded by lines
- of equals signs for easier reading; the lines are not part of the
- display.
-
- 3.1 File Header
- ---------------
-
- The default file header display, with no options, looks like this:
-
- =====
- Processing \JUNK2\DEVIL.GIF...
- FILE \JUNK2\DEVIL.GIF GIF87a 11209 bytes
- logical screen: 640 x 480
- 8 bits per color available on source
- GLOBAL COLOR TABLE:
- 6 bits (64 colors) bg index 0 (000/000/000)
- 59 unique colors.
- =====
-
- The first line gives the filename, in case an error is encountered
- immediately. The second line repeats the filename and displays the
- format and filesize. The third line gives the size, in pixels, of the
- logical screen on which all images in the file will be displayed. The
- fourth line displays how many bits per color (R,G,B) were available on
- the machine on which the file was created. This value is frequently set
- incorrectly and may generally be ignored.
-
- The global color table, if present, has a subsection to itself. The
- sixth line indicates how large the global color table is. It also
- displays the background color index and the RGB value corresponding to
- that index. While the background color index is actually part of the
- file header proper, it is meaninless unless a global color table is
- present, so it is displayed in the global color table section. If the
- file is a GIF89a-format image, this line also indicates whether the
- global color table is sorted. Finally, the seventh line indicates how
- many unique colors are present in the global color table.
-
- If no global color table is present, a line stating this is displayed
- instead.
-
- If the -v VERBOSE option is in effect, the file header display looks
- like this:
-
- =====
- Processing \JUNK2\DEVIL.GIF...
- FILE \JUNK2\DEVIL.GIF is GIF version GIF87a:
- file size (bytes): 11209
- logical screen size (pixels, width x height): 640 x 480
- 8 bits per color available on source
- This file has a global color table.
- GLOBAL COLOR TABLE:
- 6 bits per index for a table size of 64
- background index 0, RGB value 000/000/000
- 59 unique colors.
- =====
-
- The data displayed is the same, but more explanatory text is
- included.
-
- If the -c color dump option is in effect, the file header display
- looks like this:
-
- =====
- Processing \JUNK2\DEVIL.GIF...
- FILE \JUNK2\DEVIL.GIF GIF87a 11209 bytes
- logical screen: 640 x 480
- 8 bits per color available on source
- GLOBAL COLOR TABLE:
- 6 bits (64 colors) bg index 0 (000/000/000)
- 59 unique colors.
- 000/000/000 255/197/197 255/156/156 255/189/189 255/131/131
- 255/180/180 255/148/148 255/205/205 041/000/000 255/123/123
- 255/172/172 255/074/074 082/000/000 255/057/057 255/090/090
- 255/115/115 008/000/000 049/000/000 255/164/164 024/000/000
- 131/000/000 255/049/049 074/000/000 255/082/082 123/000/000
- 255/139/139 065/000/000 148/000/000 255/041/041 016/000/000
- 255/016/016 230/024/024 255/032/032 115/000/000 164/000/000
- 057/000/000 255/106/106 106/000/000 156/000/000 255/008/008
- 032/000/000 255/065/065 139/000/000 180/000/000 255/024/024
- 098/000/000 090/000/000 238/000/000 189/000/000 230/000/000
- 213/000/000 172/000/000 205/000/000 197/000/000 246/000/000
- 222/000/000 230/016/016 255/000/000 255/098/098 000/000/000
- 000/000/000 000/000/000 000/000/000 000/000/000
- =====
-
- The standard or verbose display is followed by a listing, in decimal,
- of the raw RGB values found in the global color map.
-
- 3.2 Image
- ---------
-
- The default image display, with no options, looks like this:
-
- =====
- IMAGE 1:
- size 640 x 480 corner 0, 0 sequentially
- This image uses the global color table (no local color table).
- IMAGE DATA FOR IMAGE 1:
- code size 6 bits
- Reached end of codes in block 42
- totals: 7906 codes packed into 10948 bytes in 43 blocks
- 307200 pixels extracted
- code table cleared 2 times
- compressed data is 4% of the size of uncompressed image
- 59 colors referenced (59 unique)
- =====
-
- Each image in the file is numbered sequentially (by GIFCHECK) and has
- a section to itself. The first line gives the image number. The second
- line indicates the size (in pixels) of the image, the location (in
- pixels) of the upper left corner, and how the image is stored
- ("sequentially" or "interlaced").
-
- The third line indicates whether there is a local color table, and
- whether the image uses the global or local color table. If there is a
- local color table, the third line is followed by a color table display
- similar to the one for global color tables, possibly including a dump of
- the raw RGB values if the -c color dump option is in effect. Very few
- images have local color tables.
-
- Image data is stored compressed, and the compressed data is further
- broken up into blocks (which are numbered by GIFCHECK starting at 0).
- The fifth line indicates the minimum code size for the image. The sixth
- line indicates the block in which the end-of-information (EOI) code was
- encountered. The seventh line indicates the number of codes extracted,
- the number of bytes which those codes occupied, and how many blocks
- those bytes were divided into. The eighth line indicates how many pixels
- were generated when the codes were decompressed, and the ninth line
- indicates how many times the table-clear code was encountered.
-
- The tenth line indicates the size of the compressed data as a
- percentage of the size of the uncompressed image. The size of the
- compressed data is the size of the data only, not including block
- headers, image headers, or any other non-image data, so the compression
- ratio is accurate. The size of the uncompressed image is calculated by
- multiplying the height and the width to get the total number of pixels
- in the image, then multiplying by the number of bits required to
- represent the global or local color table, depending on which one is
- used by the image. Finally, the eleventh line indicates how many colors
- were referenced by the image data, and how many of the colors referenced
- are unique.
-
- If the -v VERBOSE option is in effect, the image display looks like
- this:
-
- =====
- IMAGE 1:
- image size (pixels, width x height): 640 x 480
- image upper left corner (column, row): 0, 0
- image is stored sequentially
- This image uses the global color table (no local color table).
- IMAGE DATA FOR IMAGE 1:
- code size 6 bits
- Reached end of codes in block 42
- totals: 7906 codes packed into 10948 bytes in 43 blocks
- 307200 pixels extracted
- code table cleared 2 times
- compressed data is 4% of the size of uncompressed image
- 59 colors referenced (59 unique)
- =====
-
- The data displayed is the same, but more explanatory text is
- included.
-
- If the -f FAST option is in effect, the image display looks like
- this:
-
- =====
- IMAGE 1:
- size 640 x 480 corner 0, 0 sequentially
- This image uses the global color table (no local color table).
- IMAGE DATA FOR IMAGE 1:
- code size 6 bits
- totals: 10948 bytes in 43 blocks
- compressed data is 4% of the size of uncompressed image
- =====
-
- Since the compressed image data is not decompressed under this
- option, less information is available.
-
- 3.3 Extension Blocks
- --------------------
-
- Extension blocks have been part of the GIF format since the original
- GIF87a specification. Each extension block has a type identifier. In the
- GIF87a specification, all extension types were application-defined;
- there were no global standards. However, the GIF89a specification
- dedicated four type identifiers for specific functions, and defined the
- data formats used within those extension blocks. GIFCHECK recognizes
- these dedicated types and formats the data appropriately.
-
- 3.3.1 Generic extensions
- ------------------------
-
- If the format is GIF87a, or the format is GIF89a but the type
- identifier is not one of the four dedicated types, the "generic
- extension" format is used. It looks like this:
-
- =====
- GENERIC EXTENSION BLOCK 1:
- extension block type 255
- BLOCK 0 (11 bytes):
- G 47 I 49 F 46 L 4C I 49 T 54 E 45 20
- 20 20 20
- BLOCK 1 (6 bytes):
- 01 ) 29 p 70 0E 02 00
- totals: 17 bytes of data in 2 blocks
- =====
-
- Generic extension blocks are numbered sequentially (by GIFCHECK). The
- first line indicates that it is a generic extension block and gives the
- sequence number. The second line shows the type identifier value. The
- next lines display the data in hex dump format (generic extensions are
- always displayed in hex dump format, regardless of the setting of the -h
- option). Each data block is numbered sequentially (by GIFCHECK),
- starting at 0. A line giving the data block number and the number of
- bytes in the block is shown. Then the data bytes themselves are
- displayed, eight per line. If the byte is a printable character, the
- character is printed, followed by the hex value of the byte; otherwise a
- space is printed, followed by the hex value. Finally, a totals line is
- printed, indicating the total number of data bytes and the total number
- of data blocks.
-
- The -v VERBOSE option has no effect on generic extension displays.
-
- 3.3.2 Graphic Control Extension
- -------------------------------
-
- Graphic Control Extensions (GCEs) are one of the GIF89a dedicated
- extension types. When encountered, they are displayed like this:
-
- =====
- GRAPHIC CONTROL EXTENSION BLOCK 1:
- Disposal method: 0 (none)
- User input is not expected
- Transparency enabled (index 3)
- No delay time specified
- =====
-
- GCEs are numbered sequentially (by GIFCHECK). The first line
- indicates that it is a GCE and gives the sequence number. The second
- line shows the disposal method (which applies to the next graphic --
- i.e. image or Plain Text Extension -- in the file). This can be: "none",
- "leave in place", "restore to background", or "restore to previous".
-
- The third line indicates whether user input is expected before the
- next graphic will be displayed. The fourth line indicates whether a
- transparency color index (which indicates that pixels of the given color
- should be rendered "transparent" -- i.e., not drawn) has been specified,
- and if so, what the transparency index is. The last line indicates
- whether a delay time (delay before the next graphic is displayed) has
- been specified, and if so what the delay value is.
-
- The -v VERBOSE option has no effect on GCE displays.
-
- 3.3.3 Plain Text Extension
- --------------------------
-
- Plain Text Extensions (PTEs) are one of the GIF89a dedicated
- extension types. When encountered, they are displayed like this:
-
- =====
- PLAIN TEXT EXTENSION BLOCK 1:
- char cell 8 x 28, grid 96( 12) x 28( 1) at 0, 112
- Foreground color index 0 (RGB 016/016/014)
- Background color index 3 (RGB 113/110/232)
- START TEXT (12 characters):
- Cass Berry
- END TEXT.
- =====
-
- PTEs are numbered sequentially (by GIFCHECK). The first line
- indicates that it is a PTE and gives the sequence number. The second
- line shows: the size of the character cell, in pixels; the size of the
- character grid, in pixels and cells (cells in parentheses); and the
- location of the upper left corner of the grid. The third line shows the
- index and RGB values of the foreground text color, and the fourth line
- shows the same for the background color.
-
- The fifth line indicates the start of the text, and how many
- characters of text are present. It is followed by the text itself, which
- is in turn followed by an "END TEXT." marker on the next line.
-
- If the -v VERBOSE option is in effect, PTEs are displayed like this:
-
- =====
- PLAIN TEXT EXTENSION BLOCK 1:
- Character cell grid upper left corner (column, row): 0, 112
- Character cell size (pixels, width x height): 8 x 28
- Character grid size (pixels, width x height): 96 x 28
- Character grid size (chars, width x height): 12 x 1
- Foreground color index 0 (RGB 016/016/014)
- Background color index 3 (RGB 113/110/232)
- START TEXT (12 characters):
- Cass Berry
- END TEXT.
- =====
-
- The same information is displayed, but more explanatory text is
- included.
-
- If the -h hex dump option is in effect, the text is displayed in hex
- dump format, like this:
-
- =====
- PLAIN TEXT EXTENSION BLOCK 1:
- char cell 8 x 28, grid 96( 12) x 28( 1) at 0, 112
- Foreground color index 0 (RGB 016/016/014)
- Background color index 3 (RGB 113/110/232)
- START TEXT (12 characters):
- LINE 1:
- 20 C 43 a 61 s 73 s 73 20 B 42 e 65
- r 72 r 72 y 79 20
- END TEXT.
- =====
-
- Instead of simply displaying the text, each character is displayed
- individually, followed by its hex value.
-
- 3.3.4 Comment Extension
- -----------------------
-
- Comment Extensions are one of the GIF89a dedicated extension types.
- When encountered, they are displayed like this:
-
- =====
- COMMENT EXTENSION BLOCK 1:
- START TEXT (161 characters):
- +-------------------------------------------------+
- | Multi-image GIF89a created with CompuMake Tools |
- +-------------------------------------------------+
-
- END TEXT.
- 0 unprintable characters.
- =====
-
- Comment Extensions are numbered sequentially (by GIFCHECK). The first
- line indicates that it is a Comment Extension and gives the sequence
- number. The second line indicates the start of the text and how many
- characters of text are present. It is followed by the text itself, which
- is in turn followed by an "END TEXT." marker on the next line. The last
- line indicates how many unprintable characters were found in the text.
-
- The -v VERBOSE option has no effect on Comment Extension displays.
-
- If the -h hex dump option is in effect, the text is displayed in hex
- dump format, like this:
-
- =====
- COMMENT EXTENSION BLOCK 1:
- START TEXT (161 characters):
- + 2B - 2D - 2D - 2D - 2D - 2D - 2D - 2D
- - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D
- - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D
- - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D
- - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D
- - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D
- - 2D - 2D + 2B 0D 0A | 7C 20 M 4D
- u 75 l 6C t 74 i 69 - 2D i 69 m 6D a 61
- g 67 e 65 20 G 47 I 49 F 46 8 38 9 39
- a 61 20 c 63 r 72 e 65 a 61 t 74 e 65
- d 64 20 w 77 i 69 t 74 h 68 20 C 43
- o 6F m 6D p 70 u 75 M 4D a 61 k 6B e 65
- 20 T 54 o 6F o 6F l 6C s 73 20 | 7C
- 0D 0A + 2B - 2D - 2D - 2D - 2D - 2D
- - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D
- - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D
- - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D
- - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D
- - 2D - 2D - 2D - 2D - 2D - 2D - 2D - 2D
- - 2D - 2D - 2D - 2D + 2B 0D 0A 0D
- 0A
- END TEXT.
- 0 unprintable characters.
- =====
-
- Instead of simply displaying the text, each character is displayed
- individually, followed by its hex value.
-
- 3.3.5 Application Extension
- ---------------------------
-
- Application Extensions are one of the GIF89a dedicated extension
- types. When encountered, they are displayed like this:
-
- =====
- APPLICATION EXTENSION BLOCK 1:
- application identifier:
- f 66 r 72 a 61 c 63 t 74 i 69 n 6E t 74
- application authentication code:
- 0 30 0 30 1 31
- 246 bytes of application data.
- F 46 r 72 a 61 c 63 t 74 a 61 l 6C 00
- 96 00 07 00 00 00 00 h 68
- D8 FB 0C @ 40 00 00 00 20
- 0B FF 0C @ 40 00 00 00 00
- 00 E9 I 49 ? 3F 00 00 00 00
- F0 = 3D 89 ? 3F 00 00 00 00
- 00 00 00 00 00 00 00 00
- 00 00 00 00 00 00 00 00
- 00 00 00 00 1B 00 80 02
- E0 01 00 01 04 00 00 00
- 00 00 00 00 00 00 00 00
- 00 00 00 00 00 00 00 00
- 00 00 00 00 00 00 FF FF
- 01 00 01 00 00 00 00 00
- 00 00 00 00 00 00 00 00
- 00 00 00 00 E7 03 00 00
- Z 5A 00 09 01 00 00 x 78 00
- 8C 00 ( 28 00 00 00 02 00
- n 6E 00 00 00 00 00 01 00
- FF FF 01 00 00 00 14 00
- 00 00 00 00 04 00 00 00
- 00 00 04 00 P 50 00 d 64 00
- 00 00 00 00 00 00 FF FF
- 00 00 00 h 68 D8 FB 0C @ 40
- 00 00 00 00 00 E9 I 49 ? 3F
- g 67 00 04 00 06 01 00 00
- 00 00 00 00 00 00 D8 A7
- 00 00 00 06 02 03 00 00
- 00 00 00 00 00 00 00 00
- 00 00 00 00 00 00 00 00
- 01 00 00 00 00 00
- =====
-
- Application Extensions are numbered sequentially (by GIFCHECK). The
- first line indicates that it is an Application Extension and gives the
- sequence number. The second line introduces the eight-byte application
- identifier and is followed on the third line by the application
- identifier itself, in hex dump format. The fourth line introduces the
- three-byte application authentication code and is followed on the fifth
- line by the application authentication code itself, in hex dump format.
- The sixth line indicates how many bytes of application data are present,
- and is followed by the application data itself in hex dump format. All
- data in Application Extensions is always displayed in hex dump format,
- regardless of the setting of the -h option.
-
- The -v VERBOSE option has no effect on Application Extension
- displays.
-
- 3.4 Terminator
- --------------
-
- When the GIF terminator block is encountered, GIFCHECK prints this
- line:
-
- =====
- GIF TERMINATOR
- =====
-
-
- 4. DIAGNOSTIC MESSAGES
- ----------------------
-
- GIFCHECK can produce a variety of diagnostic messages. Some indicate
- problems within the GIF file. Others indicate malfunctions of GIFCHECK
- or the computer. Messages beginning with "ANOMALY", "VIOLATION",
- "FASCINATING", and "NITPICK" indicate problems within the GIF file.
- Messages beginning "FATAL ERROR", "ERROR", or "WARNING" indicate
- malfunctions. Messages beginning "STRIP" indicate that the file should
- be processed by the GIFSTRIP program to remove excess characters.
-
- 4.1 Anomalies
- -------------
-
- Anomalies are radical violations of the GIF specification. Anomalies
- may be caused by massive corruption of the file, to the extent that
- GIFCHECK cannot determine how to proceed with processing of the file, or
- by individual values that make no sense. In either case, an image with
- anomalies will probably be rejected by most GIF viewers. Anomalies are
- always displayed and always cause GIFCHECK to skip immediately to the
- next file to be processed.
-
- The various anomalies that GIFCHECK can detect are explained below.
-
- ANOMALY: end of data reached before end of codes
- GIFCHECK reached the end of the packed image data
- without encountering an End-of-Information code, which
- signals the end of the image.
-
- ANOMALY: decompression error in block xxx at offset yyy
- GIFCHECK found a bad code in the packed image data. This
- indicates that the file has been corrupted, and most
- likely the rest of the file is trash.
-
- ANOMALY: foreground color index off end of global color table
- The color index specified for the foreground in a GIF89a
- Plain Text Extension is invalid (PTEs always use the
- global color table).
-
- ANOMALY: background color index off end of global color table
- The color index specified for the background in a GIF89a
- Plain Text Extension is invalid (PTEs always use the
- global color table).
-
- ANOMALY: an undefined disposal method (x) is given
- The value in the disposal method field of a Graphic
- Control Extension is undefined.
-
- ANOMALY: a ... cannot follow a ...
- Where "..." is a block type. The GIF89a specification
- includes a grammar which indicates which types of blocks
- can follow which other types of blocks (in the simpler
- GIF87a specification, there was no need). This grammar
- has been violated.
-
- 4.2 Violations
- --------------
-
- Violations are major violations of the GIF specification. Violations
- may be caused by corruption of the file or by individual values that
- make no sense. In either case, an image with violations may be rejected
- by some viewers and displayed with difficulty by others. Violations are
- always displayed, and by default cause GIFCHECK to skip immediately to
- the next file to be processed.
-
- The various violations that GIFCHECK can detect are explained below.
-
- VIOLATION: image does not fit on logical screen
- Either the size of the image given in the image header
- is greater in one or both dimensions than the size of
- the logical screen given in the file header, or the
- position of the image given in the image header causes
- parts of the image to extend beyond the boundaries of
- the logical screen.
-
- VIOLATION: bad transparency index (x)
- If processing a Plain Text Extension, indicates that the
- transparency index specified by a preceeding Graphic
- Control Extension is off the end of the global color
- table (PTEs always use the global color table). If
- processing an image, indicates that the transparency
- index is off the end of either the global or local color
- table, depending on which one the image uses.
-
- VIOLATION: character grid does not fit on logical screen
- Either the size of the character grid given in the Plain
- Text Extension is greater in one or both dimensions than
- the size of the logical screen given in the file header,
- or the position of the character grid causes parts of it
- to extend beyond the boundaries of the logical screen.
-
- VIOLATION: text is too long to fit into character grid
- The text given in the Plain Text Extension contains more
- characters than there are character cells in the
- character grid.
-
- VIOLATION: xxx garbage characters found between blocks
- There should be no garbage characters between blocks.
- While this can theoretically be solved by using the
- GIFSTRIP program, it probably indicates that the file
- has been corrupted.
-
- 4.3 Fascinatings
- ----------------
-
- Fascinatings are not always violations of the GIF specification.
- Fascinatings are unusual conditions which most viewers can cope with,
- but are still worthy of note. Fascinatings are displayed by default, and
- by default do NOT cause GIFCHECK to skip.
-
- The various fascinatings that GIFCHECK can detect are explained
- below.
-
- FASCINATING: this file does not contain a global color table
- The GIF specification allows for files without global
- color tables; they are to be displayed using the global
- color table from a previous file, or a default table
- chosen by the viewer if no previous global color table
- is available. Files without global color tables are
- extremely rare. This message is displayed when an image
- which uses the global color table is encountered in a
- file which has none.
-
- FASCINATING: xxx extra blocks on end of image
- The packed image data continued for one or more blocks
- after the block in which the End-of-Information (EOI)
- code was found. While this condition is suspicious, the
- data before the EOI decompressed correctly (otherwise an
- ANOMALY would have occurred), so there's no concrete
- evidence that the image is bad.
-
- FASCINATING: too few pixels extracted (xxx lines found, yyy pixels
- missing)
- When the End-of-Information code was encountered, too
- few pixels had been extracted to fill the image (e.g.
- for a 320 by 200 image, which should have 64,000 pixels,
- only 63,999 were extracted). Typically only one or two
- are missing. Viewers seem to cope with this condition
- OK.
-
- FASCINATING: too many pixels extracted (xxx extra)
- When the End-of-Information code was encountered, more
- pixels than necessary had been extracted (e.g. for a
- 320 by 200 image, which should have 64,000 pixels,
- 64,001 were extracted). Typically only one or two extras
- are present. Viewers seem to cope with this condition
- OK.
-
- FASCINATING: code table never cleared
- While this is technically OK, it is recommended practice
- to clear the decompression code table (via a clear code
- in the compressed image data) immediately at the
- beginning of the image. If the code table was never
- cleared, the initial clear never occurred.
-
- FASCINATING: this file has no Global Color Table (GCT is used by PTE)
- The GIF specification allows for files without global
- color tables; they are to be displayed using the global
- color table from a previous file, or a default table
- chosen by the viewer if no previous global color table
- is available. Files without global color tables are
- extremely rare. This message is displayed when a Plain
- Text Extension (PTEs always use the global color table)
- is encountered in a file which has no global color table.
-
- FASCINATING: transparency index does not match either foreground
- or background
- This message is displayed when processing a Plain Text
- Extension and the transparency index specified by a
- preceeding Graphic Control Extension does not match
- either the foreground or the background color indices of
- the PTE. This renders the transparency index
- meaningless, since it only applies to the next graphic
- (image or PTE) following the GCE. Nothing is technically
- wrong, but it's weird.
-
- 4.4 Nitpicks
- ------------
-
- Nitpicks are minor technical violations of the GIF specification.
- Some are very common, and they should not cause problems when viewing
- the file. Nitpicks are by default NOT displayed, and never cause
- GIFCHECK to skip.
-
- The various nitpicks that GIFCHECK can detect are explained below.
- Most of these messages are self-explanatory, so no detailed explanation
- is given.
-
- NITPICK: byte 6 of the logical screen descriptor should be 0 for GIF87A
-
- NITPICK: bit 3, byte 4 of logical screen descriptor should be 0
- for GIF87A
-
- NITPICK: bits 3 and 4, byte 9 of image descriptor should be 0
-
- NITPICK: bit 5, byte 9 of image descriptor should be 0 for GIF87A
-
- NITPICK: bits 5-7, byte 1 of graphic control extension should be 0
-
- NITPICK: local color table size is nonzero
- The image does not have a local color table, but the
- local color table size is nonzero.
-
- NITPICK: character grid not an integral number of character cells wide
- The horizontal size of the character grid in a Plain
- Text Extension is not evenly divisible by the horizontal
- size of a character cell.
-
- NITPICK: character grid not an integral number of character cells high
- The vertical size of the character grid in a Plain Text
- Extension is not evenly divisible by the vertical size
- of a character cell.
-
- NITPICK: xxx unprintable characters in text
- Plain Text Extensions are supposed to contain only
- "7-bit printable ASCII characters".
-
- 4.5 Miscellaneous
- -----------------
-
- GIFCHECK can also produce messages beginning with "FATAL ERROR",
- "ERROR", "WARNING", and "STRIP". The first three indicate malfunctions
- of GIFCHECK or the computer, and typically cause GIFCHECK to exit
- immediately. Messages beginning with "STRIP" indicate that the file
- should be processed by the GIFSTRIP program to remove excess characters,
- and are simply for the user's information. Processing of the file is not
- affected.
-
-
- 5. THE END
- ----------
-
- Technical support via email is available from the following addresses:
-
- INTERNET (the following are alternate addresses for the same place):
- support@picarefy.com
- picarefy!support@amc.com
- picarefy!support@netcom.com
- uunet!uw-coco!amc-gw!picarefy!support
-
- COMPUSERVE:
- 71261,1731
-
- GENIE:
- J.BIRDSALL2
-
- Registrations should be sent to:
-
- James W. Birdsall
- 11112 NE 124 LN #D204
- Kirkland, WA 98034
-
- If you have an email address on any of the networks listed above,
- please include it when registering. It is much easier to send updates by
- email. Also, please specify what sort of archive (ZIP, ZOO, ARC, LZH,
- ARJ, UNIX shar) you can handle most easily.
-
- NOTE: IF YOU DO NOT PROVIDE AN EMAIL ADDRESS, YOU WILL ONLY RECEIVE
- MAJOR VERSION UPDATES. YOU WILL NOT RECEIVE MINOR VERSIONS. PLEASE
- PROVIDE AN EMAIL ADDRESS IF YOU HAVE ANY WAY OF DOING SO.
-
-